Mobile Source Media Content Access

ABSTRACT

Embodiments are provided for replacing media items in a queue of a playback device. An example implementation involves receiving, at the playback device, first data indicating an addition of a first media item to a queue. The playback device determines that the first media item is no longer accessible to the playback device at a later second time. The playback device initiates a query for a media item similar to the first media item and receives second data indicating that a second media item has replaced the first media item in the queue, the second media item being similar to the first media item. In response, the playback device initiates playback of the second media item on the playback device.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 120 to, and is acontinuation of, U.S. non-provisional patent application Ser. No.15/713,620, filed on Sep. 23, 2017 entitled “Playback Device Media ItemReplacement,” which is incorporated herein by reference in its entirety.

U.S. non-provisional patent application Ser. No. 15/713,620 claimspriority under 35 U.S.C. § 120 to, and is a continuation of, U.S.non-provisional patent application Ser. No 15/357,605, filed on Nov. 21,2016, entitled “Mobile Source Media Content Access,” which issued asU.S. Pat. No. 9,774,643 on Sep. 26, 2017, and which is also incorporatedherein by reference in its entirety.

U.S. non-provisional patent application Ser. No. 15/357,605 claimspriority under 35 U.S.C. § 120 to, and is a continuation of, U.S.non-provisional patent application Ser. No. 15/056,585, filed on Feb.29, 2016, entitled “Replacing Media Item,” which issued as U.S. Pat. No.9,537,915 on Apr. 19, 2016, and which is also incorporated herein byreference in its entirety.

U.S. non-provisional patent application Ser. No. 15/056,585 claimspriority under 35 U.S.C. § 120 to, and is a continuation of, U.S.non-provisional patent application Ser. No. 13/693,243, filed on Dec. 4,2012, entitled “Media Source Media Content Access,” which issued as U.S.Pat. No. 9,319,153 on Apr. 19, 2016, and which is also incorporatedherein by reference in its entirety.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tosystems, products, features, services, and other items directed to mediaplayback or some aspect thereof.

BACKGROUND

Technological advancements have increased the accessibility of musiccontent, as well as other types of media, such as television content,movies, and interactive content. For example, a user can access audio,video, or both audio and video content over the Internet through anonline store, an Internet radio station, a music service, a movieservice, and so on, in addition to the more traditional avenues ofaccessing audio and video content. Demand for audio, video, and bothaudio and video content inside and outside of the home continues toincrease.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologymay be better understood with regard to the following description,appended claims, and accompanying drawings where:

FIG. 1 shows an example configuration in which certain embodiments maybe practiced;

FIG. 2A shows an illustration of an example zone player having abuilt-in amplifier and transducers;

FIG. 2B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 2C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 3 shows an illustration of an example controller;

FIG. 4 shows an internal functional block diagram of an example zoneplayer;

FIG. 5 shows an internal functional block diagram of an examplecontroller;

FIG. 6 shows an example ad-hoc playback network;

FIG. 7 shows a system of a plurality of networks including a cloud-basednetwork and at least one local playback network;

FIG. 8 shows an example flow diagram for selective addition of media foraccess by a device in a media system;

FIG. 9A shows an example block diagram representing a first mediaaccessibility;

FIG. 9B shows an example block diagram representing a second mediaaccessibility;

FIG. 9C shows an example block diagram representing a third mediaaccessibility;

FIG. 10A shows an example first interface of a device in a media system;

FIG. 10B shows an example second interface of a device in a mediasystem;

FIG. 10C shows an example third interface of a device in a media system;and

FIG. 10D shows an example fourth interface of a device in a mediasystem.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the inventions are not limited tothe arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Embodiments are described herein that may allow a user of a networkedmedia system to add media from a personal device of the user to a mediaqueue accessible by the media system and component devices of the mediasystem. In particular, certain embodiments allow the user to selectivelyadd media from the personal device to the queue, such that only aselected subset of media on the personal device, rather than all mediaon the personal device is added to the queue (unless the user decides,for example, to add all of the media from the personal device to thequeue). In an embodiment, other controller(s) may view and play only theadded media from the personal device via the networked media system.Further, the embodiments may provide to the queue equivalent media tothe selected subset of media on the personal device in case the personaldevice is communicatively disconnected from the media system.

In one embodiment, the personal device may be a mobile media player suchas an APPLE IPOD®, or a smart phone such as an APPLE IPHONE® or anyANDROID™ powered phone that may be configured to be in communicationwith the media system. In one example, the user may add media from thepersonal device to the queue by docking the personal device in a dockingstation of the media system. In such a case, the personal device mayeffectively become a component device of the media system, and all mediastored on or available through the personal device may become accessibleby the media system and other component devices of the media system.

In another case, the user may add media from the personal device to thequeue using an application on the personal device in communication withthe media system. In one example, a controller application forcontrolling the media system from the personal device may also beconfigured for use by the user may to select and add to the queue aselected subset of media stored on the personal device and/or accessiblethrough the personal device. In this case, the media system may onlyhave access to the selected subset of media from the personal device,and may not have access to the remaining, non-selected media from thepersonal device. In a further case, the personal device may beconfigured to add only the selected subset of media from the personaldevice to the queue, even if the personal device is docked to the mediasystem. Such cases may be implemented to protect the privacy of a userby allowing the user to specifically control what content is shared on amedia system if and when the user wishes to share content.

In an embodiment, the media from the personal device only includes mediastored on the personal device. In another embodiment, the media includesany content accessible over a network via the personal device, such asmedia placed in cloud storage. In yet another embodiment, the mediaincludes content accessible over a network via the personal deviceand/or media stored on the personal device.

In the case the personal device is not physically connected to the mediasystem, the personal device may be a transient device that may move inand out of communicative range with the media system. For instance, thepersonal device may be physically carried by the user, and may travelaround with the user. If the personal device moves out of communicativerange with the media system, the media system may no longer have accessto the subset of media the user may have added from the personal deviceto the queue. For such a case, certain embodiments of the presentapplication may search for media equivalent to the subset of media fromthe personal device, and may provide the equivalent media of the subsetof media is no longer accessible by the media system.

As suggested previously, the media on the personal device may includemedia stored on the personal device, as well as media accessible throughthe personal device. In one example, the personal device may include astorage medium on which media content data may be stored and from whichthe media content may be accessed. In another example, the personaldevice may be configured to have access to remote media repositories(e.g., media stored on a local network or a server in the cloud), and/ora media services such as RHAPSODY™, SPOTIFY™, and others. As such, thesubset of media may include media from either, or both the local storagemedium and remote media repositories.

Media or a pointer thereto (collectively referred to herein as “media”or “media content”) may include a file, a uniform resource location(URL), or metadata used to identify the media content. For instance, amedia repository may include one or more URLs that each identifiesmedia, such as a song or video. The URLs may be specific for the mediaand the service. In another instance, a repository may include one ormore media files, or a combination of files and URLs.

In one embodiment, adding the subset of media to the media system mayinvolve transferring a copy of each media in the subset of media to alocal storage medium of the media system. In another embodiment, addingthe subset of media to the media system may involve providing to themedia system pointers to each media in the subset of media. In a furtherembodiment, adding the subset of media to the media system may involvetransferring a copy of some media in the subset of media to the localstorage medium of the media system and providing pointers to other mediain the subset of media to the media system. In yet another embodiment,both copies of and pointers to each media in the subset of media may beprovided to the media system.

As suggested above, the present application enables a user toselectively add media from a personal device, such as a mobile device toa queue accessible by other devices in a media system. In one aspect, amethod is provided. The method involves providing first mediaavailability data. The first media availability data indicates firstmedia available for access by a first device. The method furtherinvolves receiving from a second device having access to a first subsetof media and a second subset of media, data indicating an addition ofthe first subset of media to a queue accessible by the first device, andproviding second media availability data indicating second mediaavailable for access by the first device. The second media comprises thefirst media and the first subset of media and does not comprise thesecond subset of media.

In another aspect, a system is provided. The system includes at leastone processor, a non-transitory computer readable medium, and programinstructions stored on the non-transitory computer readable medium. Theprogram instructions are executable by the at least one processor toperform functions including providing first media availability data. Thefirst media availability data indicates first media available for accessby a first device. The functions further include receiving from a seconddevice having access to a first subset of media and a second subset ofmedia, data indicating an addition of the first subset of media to aqueue accessible by the first device, and providing second mediaavailability data indicating second media available for access by thefirst device. The second media comprises the first media and the firstsubset of media and does not comprise the second subset of media.

In yet another aspect, a non-transitory computer readable medium havinginstructions stored thereon is provided. The instructions are executableby a computing device to cause the computing device to perform functionsincluding providing first media availability data. The first mediaavailability data indicates first media available for access by a firstdevice. The functions further include receiving from a second devicehaving access to a first subset of media and a second subset of media,data indicating an addition of the first subset of media to a queueaccessible by the first device, and providing second media availabilitydata indicating second media available for access by the first device.The second media comprises the first media and the first subset of mediaand does not comprise the second subset of media. Other embodiments areprovided and described herein.

II. Example Operating Environment

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1 shows an example media systemconfiguration 100 in which one or more embodiments disclosed herein canbe practiced or implemented.

By way of illustration, the media system configuration 100 represents ahome with multiple zones, though the home could have been configuredwith only one zone. Each zone, for example, may represent a differentroom or space, such as an office, bathroom, bedroom, kitchen, diningroom, family room, home theater room, utility or laundry room, andpatio. A single zone might also include multiple rooms or spaces if soconfigured. One or more of zone players 102-124 are shown in eachrespective zone. A zone player 102-124, also referred to as a playbackdevice, multimedia unit, speaker, player, and so on, provides audio,video, and/or audiovisual output. A controller 130 (e.g., shown in thekitchen for purposes of illustration) provides control to the mediasystem configuration 100. Controller 130 may be fixed to a zone, oralternatively, mobile such that it can be moved about the zones. Themedia system configuration 100 may also include more than one controller130. The media system configuration 100 illustrates an example wholehouse media system, though it is understood that the technologydescribed herein is not limited to its particular place of applicationor to an expansive system like a whole house media system 100 of FIG. 1.

a. Example Zone Players

FIGS. 2A, 2B, and 2C show example types of zone players. Zone players200, 202, and 204 of FIGS. 2A, 2B, and 2C, respectively, can correspondto any of the zone players 102-124 of FIG. 1, for example. In someembodiments, audio is reproduced using only a single zone player, suchas by a full-range player. In some embodiments, audio is reproducedusing two or more zone players, such as by using a combination offull-range players or a combination of full-range and specializedplayers. In some embodiments, zone players 200-204 may also be referredto as a “smart speaker,” because they contain processing capabilitiesbeyond the reproduction of audio, more of which is described below.

FIG. 2A illustrates zone player 200 that includes sound producingequipment 208 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by zone player200 over a wired or wireless data network. Sound producing equipment 208includes one or more built-in amplifiers and one or more acoustictransducers (e.g., speakers). A built-in amplifier is described morebelow with respect to FIG. 4. A speaker or acoustic transducer caninclude, for example, any of a tweeter, a mid-range driver, a low-rangedriver, and a subwoofer. In some embodiments, zone player 200 can bestatically or dynamically configured to play stereophonic audio,monaural audio, or both. In some embodiments, zone player 200 isconfigured to reproduce a subset of full-range sound, such as when zoneplayer 200 is grouped with other zone players to play stereophonicaudio, monaural audio, and/or surround audio or when the audio contentreceived by zone player 200 is less than full-range.

FIG. 2B illustrates zone player 202 that includes a built-in amplifierto power a set of detached speakers 210. A detached speaker can include,for example, any type of loudspeaker. Zone player 202 may be configuredto power one, two, or more separate loudspeakers. Zone player 202 may beconfigured to communicate an audio signal (e.g., right and left channelaudio or more channels depending on its configuration) to the detachedspeakers 210 via a wired path.

FIG. 2C illustrates zone player 204 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 214 withbuilt-in amplification.

Referring back to FIG. 1, in some embodiments, one, some, or all of thezone players 102 to 124 can retrieve audio directly from a source. Forexample, a zone player may contain a playlist or queue of audio items tobe played (also referred to herein as a “playback queue”). Each item inthe queue may comprise a uniform resource identifier (URI) or some otheridentifier. The URI or identifier can point the zone player to the audiosource. The source might be found on the Internet (e.g., the cloud),locally from another device over data network 128 (described furtherbelow), from the controller 130, stored on the zone player itself, orfrom an audio source communicating directly to the zone player. In someembodiments, the zone player can reproduce the audio itself, send it toanother zone player for reproduction, or both where the audio is playedby the zone player and one or more additional zone players in synchrony.In some embodiments, the zone player can play a first audio content (ornot play at all), while sending a second, different audio content toanother zone player(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players referred to as a “PLAY:5,” “PLAY:3,”“CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present, and/orfuture zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 2A, 2B, and 2C or to the SONOSproduct offerings. For example, a zone player may include a wired orwireless headphone. In yet another example, a zone player might includea sound bar for television. In yet another example, a zone player caninclude or interact with a docking station for an Apple IPOD™ or similardevice.

b. Example Controllers

FIG. 3 illustrates an example wireless controller 300 in docking station302. By way of illustration, controller 300 may correspond tocontrolling device 130 of FIG. 1. Docking station 302, if provided, maybe used to charge a battery of controller 300. In some embodiments,controller 300 may be provided with a touch screen 304 that allows auser to interact through touch with the controller 300, for example, toretrieve and navigate a playlist of audio items, control operations ofone or more zone players, and provide overall control of the systemconfiguration 100. In certain embodiments, any number of controllers canbe used to control the system configuration 100. In some embodiments,there may be a limit set on the number of controllers that can controlthe system configuration 100. The controllers might be wireless likewireless controller 300 or wired to data network 128.

In some embodiments, if more than one controller is used in system 100,each controller may be coordinated to display common content, and mayall be dynamically updated to indicate changes made from a singlecontroller. Coordination can occur, for instance, by a controllerperiodically requesting a state variable directly or indirectly from oneor more zone players; the state variable may provide information aboutsystem 100, such as current zone group configuration, what is playing inone or more zones, volume levels, and other items of interest. The statevariable may be passed around on data network 128 between zone players(and controllers, if so desired) as needed or as often as programmed.

In addition, an application running on any network-enabled portabledevice, such as an IPHONE™, IPAD™, ANDROID™ powered phone, or any othersmart phone or network-enabled device can be used as controller 130. Anapplication running on a laptop or desktop personal computer (PC) orMac™ can also be used as controller 130. Such controllers may connect tosystem 100 through an interface with data network 128, a zone player, awireless router, or using some other configured connection path. Examplecontrollers offered by Sonos, Inc. of Santa Barbara, Calif. include a“Controller 200,” “SONOS® CONTROL,” “SONOS® Controller for IPHONE™,”“SONOS® Controller for IPAD™,” “SONOS® Controller for ANDROID™,” “SONOS®Controller for MAC™ or PC.”

c. Example Data Connection

Zone players 102 to 124 of FIG. 1 are coupled directly or indirectly toa data network, such as data network 128. Controller 130 may also becoupled directly or indirectly to data network 128 or individual zoneplayers. Data network 128 is represented by an octagon in the figure tostand out from other representative components. While data network 128is shown in a single location, it is understood that such a network isdistributed in and around system 100. Particularly, data network 128 canbe a wired network, a wireless network, or a combination of both wiredand wireless networks. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 based on aproprietary mesh network. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 using anon-mesh topology. In some embodiments, one or more of the zone players102-124 are coupled via a wire to data network 128 using Ethernet orsimilar technology. In addition to the one or more zone players 102-124connecting to data network 128, data network 128 can further allowaccess to a wide area network, such as the Internet.

In some embodiments, connecting any of the zone players 102-124, or someother connecting device, to a broadband router, can create data network128. Other zone players 102-124 can then be added wired or wirelessly tothe data network 128. For example, a zone player (e.g., any of zoneplayers 102-124) can be added to the system configuration 100 by simplypressing a button on the zone player itself (or perform some otheraction), which enables a connection to be made to data network 128. Thebroadband router can be connected to an Internet Service Provider (ISP),for example. The broadband router can be used to form another datanetwork within the system configuration 100, which can be used in otherapplications (e.g., web surfing). Data network 128 can also be used inother applications, if so programmed. An example, second network mayimplement SONOSNET™ protocol, developed by SONOS, Inc. of Santa Barbara.SONOSNET™ represents a secure, AES-encrypted, peer-to-peer wireless meshnetwork. Alternatively, in certain embodiments, the data network 128 isthe same network, such as a traditional wired or wireless network, usedfor other applications in the household.

d. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 1 contains two zone players 106 and 108, while thekitchen is shown with one zone player 102. In another example, the hometheater room contains additional zone players to play audio from a 5.1channel or greater audio source (e.g., a movie encoded with 5.1 orgreater audio channels). In some embodiments, one can position a zoneplayer in a room or space and assign the zone player to a new orexisting zone via controller 130. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with controller 130.Moreover, in some embodiments, zone configurations may be dynamicallychanged even after being configured using controller 130 or some othermechanism.

In some embodiments, if a zone contains two or more zone players, suchas the two zone players 106 and 108 in the family room, then the twozone players 106 and 108 can be configured to play the same audio sourcein synchrony, or the two zone players 106 and 108 can be paired to playtwo separate sounds in left and right channels, for example. In otherwords, the stereo effects of a sound can be reproduced or enhancedthrough the two zone players 106 and 108, one for the left sound and theother for the right sound. In certain embodiments, paired zone players(also referred to as “bonded zone players”) can play audio in synchronywith other zone players in the same or different zones.

In some embodiments, two or more zone players can be sonicallyconsolidated to form a single, consolidated zone player. A consolidatedzone player (though made up of multiple, separate devices) can beconfigured to process and reproduce sound differently than anunconsolidated zone player or zone players that are paired, because aconsolidated zone player will have additional speaker drivers from whichsound can be passed. The consolidated zone player can further be pairedwith a single zone player or yet another consolidated zone player. Eachplayback device of a consolidated playback device can be set in aconsolidated mode, for example.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing controller 130, and not by physically connecting and re-connectingspeaker wire, for example, to individual, discrete speakers to createdifferent configurations. As such, certain embodiments described hereinprovide a more flexible and dynamic platform through which soundreproduction can be offered to the end-user.

e. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via zone player 124, while someone is preparing food in thekitchen and listening to classical music via zone player 102. Further,someone can be in the office listening to the same jazz music via zoneplayer 110 that is playing on the patio via zone player 124. In someembodiments, the jazz music played via zone players 110 and 124 isplayed in synchrony. Synchronizing playback amongst zones allows forsomeone to pass through zones while seamlessly (or substantiallyseamlessly) listening to the audio. Further, zones can be put into a“party mode” such that all associated zones will play audio insynchrony.

Sources of audio content to be played by zone players 102-124 arenumerous. In some embodiments, music on a zone player itself may beaccessed and a played. In some embodiments, music from a personallibrary stored on a computer or networked-attached storage (NAS) may beaccessed via the data network 128 and played. In some embodiments,Internet radio stations, shows, and podcasts can be accessed via thedata network 128. Music or cloud services that let a user stream and/ordownload music and audio content can be accessed via the data network128. Further, music can be obtained from traditional sources, such as aturntable or CD player, via a line-in connection to a zone player, forexample. Audio content can also be accessed using a different protocol,such as AIRPLAY™, which is a wireless technology by Apple, Inc., forexample. Audio content received from one or more sources can be sharedamongst the zone players 102 to 124 via data network 128 and/orcontroller 130. The above-disclosed sources of audio content arereferred to herein as network-based audio information sources. However,network-based audio information sources are not limited thereto.

In some embodiments, the example home theater zone players 116, 118, 120are coupled to an audio information source such as a television 132. Insome examples, the television 132 is used as a source of audio for thehome theater zone players 116, 118, 120, while in other examples audioinformation from the television 132 can be shared with any of the zoneplayers 102-124 in the audio system 100.

III. Example Zone Players

Referring now to FIG. 4, there is shown an example block diagram of azone player 400 in accordance with an embodiment. Zone player 400includes a network interface 402, a processor 408, a memory 410, anaudio processing component 412, one or more modules 414, an audioamplifier 416, and a speaker unit 418 coupled to the audio amplifier416. FIG. 2A shows an example illustration of such a zone player. Othertypes of zone players may not include the speaker unit 418 (e.g., suchas shown in FIG. 2B) or the audio amplifier 416 (e.g., such as shown inFIG. 2C). Further, it is contemplated that the zone player 400 can beintegrated into another component. For example, the zone player 400could be constructed as part of a television, lighting, or some otherdevice for indoor or outdoor use.

In some embodiments, network interface 402 facilitates a data flowbetween zone player 400 and other devices on a data network 128. In someembodiments, in addition to getting audio from another zone player ordevice on data network 128, zone player 400 may access audio directlyfrom the audio source, such as over a wide area network or on the localnetwork. In some embodiments, the network interface 402 can furtherhandle the address part of each packet so that it gets to the rightdestination or intercepts packets destined for the zone player 400.Accordingly, in certain embodiments, each of the packets includes anInternet Protocol (IP)-based source address as well as an IP-baseddestination address.

In some embodiments, network interface 402 can include one or both of awireless interface 404 and a wired interface 406. The wireless interface404, also referred to as a radio frequency (RF) interface, providesnetwork interface functions for the zone player 400 to wirelesslycommunicate with other devices (e.g., other zone player(s), speaker(s),receiver(s), component(s) associated with the data network 128, and soon) in accordance with a communication protocol (e.g., any wirelessstandard including IEEE 802.11a, 802.11b, 802.11g, 802.11n, or 802.15).Wireless interface 404 may include one or more radios. To receivewireless signals and to provide the wireless signals to the wirelessinterface 404 and to transmit wireless signals, the zone player 400includes one or more antennas 420. The wired interface 406 providesnetwork interface functions for the zone player 400 to communicate overa wire with other devices in accordance with a communication protocol(e.g., IEEE 802.3). In some embodiments, a zone player includes multiplewireless 404 interfaces. In some embodiments, a zone player includesmultiple wired 406 interfaces. In some embodiments, a zone playerincludes both of the interfaces 404 and 406. In some embodiments, a zoneplayer 400 includes only the wireless interface 404 or the wiredinterface 406.

In some embodiments, the processor 408 is a clock-driven electronicdevice that is configured to process input data according toinstructions stored in memory 410. The memory 410 is data storage thatcan be loaded with one or more software module(s) 414, which can beexecuted by the processor 408 to achieve certain tasks. In theillustrated embodiment, the memory 410 is a tangible machine-readablemedium storing instructions that can be executed by the processor 408.In some embodiments, a task might be for the zone player 400 to retrieveaudio data from another zone player or a device on a network (e.g.,using a uniform resource locator (URL) or some other identifier). Insome embodiments, a task may be for the zone player 400 to send audiodata to another zone player or device on a network. In some embodiments,a task may be for the zone player 400 to synchronize playback of audiowith one or more additional zone players. In some embodiments, a taskmay be to pair the zone player 400 with one or more zone players tocreate a multi-channel audio environment. Additional or alternativetasks can be achieved via the one or more software module(s) 414 and theprocessor 408.

The audio processing component 412 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 412 may be part ofprocessor 408. In some embodiments, the audio that is retrieved via thenetwork interface 402 is processed and/or intentionally altered by theaudio processing component 412. Further, the audio processing component412 can produce analog audio signals. The processed analog audio signalsare then provided to the audio amplifier 416 for play back throughspeakers 418. In addition, the audio processing component 412 caninclude circuitry to process analog or digital signals as inputs to playfrom zone player 400, send to another zone player on a network, or bothplay and send to another zone player on the network. An example inputincludes a line-in connection (e.g., an auto-detecting 3.5 mm audioline-in connection).

The audio amplifier 416 is a device(s) that amplifies audio signals to alevel for driving one or more speakers 418. The one or more speakers 418can include an individual transducer (e.g., a “driver”) or a completespeaker system that includes an enclosure including one or more drivers.A particular driver can be a subwoofer (e.g., for low frequencies), amid-range driver (e.g., for middle frequencies), and a tweeter (e.g.,for high frequencies), for example. An enclosure can be sealed orported, for example. Each transducer may be driven by its own individualamplifier.

A commercial example, presently known as the PLAY:5™, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the Internet or on the localnetwork, for example. In particular, the PLAY:5™ is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies but from different channels ofaudio. Audio from Internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5™.

IV. Example Controller

Referring now to FIG. 5, there is shown an example block diagram forcontroller 500, which can correspond to the controlling device 130 inFIG. 1. Controller 500 can be used to facilitate the control ofmulti-media applications, automation and others in a system. Inparticular, the controller 500 may be configured to facilitate aselection of a plurality of audio sources available on the network andenable control of one or more zone players (e.g., the zone players102-124 in FIG. 1) through a wireless or wired network interface 508.According to one embodiment, the wireless communications is based on anindustry standard (e.g., infrared, radio, wireless standards includingIEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.15, and so on). Further,when a particular audio is being accessed via the controller 500 orbeing played via a zone player, a picture (e.g., album art) or any otherdata, associated with the audio and/or audio source can be transmittedfrom a zone player or other electronic device to controller 500 fordisplay.

Controller 500 is provided with a screen 502 and an input interface 514that allows a user to interact with the controller 500, for example, tonavigate a playlist of many multimedia items and to control operationsof one or more zone players. The screen 502 on the controller 500 can bean LCD screen, for example. The screen 500 communicates with and iscommanded by a screen driver 504 that is controlled by a microcontroller(e.g., a processor) 506. The memory 510 can be loaded with one or moreapplication modules 512 that can be executed by the microcontroller 506with or without a user input via the user interface 514 to achievecertain tasks. In some embodiments, an application module 512 isconfigured to facilitate grouping a number of selected zone players intoa zone group and synchronizing the zone players for audio play back. Insome embodiments, an application module 512 is configured to control theaudio sounds (e.g., volume) of the zone players in a zone group. Inoperation, when the microcontroller 506 executes one or more of theapplication modules 512, the screen driver 504 generates control signalsto drive the screen 502 to display an application specific userinterface accordingly.

The controller 500 includes a network interface 508 that facilitateswired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationare sent via the network interface 508. In some embodiments, a savedzone group configuration is transmitted between a zone player and acontroller via the network interface 508. The controller 500 can controlone or more zone players, such as 102-124 of FIG. 1. There can be morethan one controller for a particular system, and each controller mayshare common information with another controller, or retrieve the commoninformation from a zone player, if such a zone player storesconfiguration data (e.g., such as a state variable). Further, acontroller can be integrated into a zone player.

It should be noted that other network-enabled devices such as anIPHONE™, IPAD™ or any other smart phone or network-enabled device (e.g.,a networked computer such as a PC or MAC™) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 500. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup play back an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups are to be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 500 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplay back is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer.

In certain embodiments, a user can link any number of the six zoneplayers, for example, by starting with a single zone and then manuallylinking each zone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would manually andindividually link each zone. The single command may include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed action. Other kinds of zone scenes can be programmed.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration. Although any particular zone can be triggered to an“On” or “Off” state based on time, for example, a zone scene enables anyzone(s) linked to the scene to play a predefined audio (e.g., afavorable song, a predefined playlist) at a specific time and/or for aspecific duration. If, for any reason, the scheduled music failed to beplayed (e.g., an empty playlist, no connection to a share, failedUniversal Plug and Play (UPnP), no Internet connection for an InternetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

V. Example Ad-Hoc Network

Certain particular examples are now provided in connection with FIG. 6to describe, for purposes of illustration, certain systems and methodsto provide and facilitate connection to a playback network. FIG. 6 showsthat there are three zone players 602, 604 and 606 and a controller 608that form a network branch that is also referred to as an Ad-Hoc network610. The network 610 may be wireless, wired, or a combination of wiredand wireless. In general, an Ad-Hoc (or “spontaneous”) network is alocal area network or other small network in which there is generally noone access point for all traffic. With an established Ad-Hoc network610, the devices 602, 604, 606 and 608 can all communicate with eachother in a “peer-to-peer” style of communication, for example.Furthermore, devices may join and/or leave from the network 610, and thenetwork 610 will automatically reconfigure itself without needing theuser to reconfigure the network 610. While an Ad-Hoc network isreferenced in FIG. 6, it is understood that a playback network may bebased on a type of network that is completely or partially differentfrom an Ad-Hoc network.

Using the Ad-Hoc network 610, the devices 602, 604, 606, and 608 canshare or exchange one or more audio sources and be dynamically groupedto play the same or different audio sources. For example, the devices602 and 604 are grouped to playback one piece of music, and at the sametime, the device 606 plays back another piece of music. In other words,the devices 602, 604, 606 and 608, as shown in FIG. 6, form a HOUSEHOLDthat distributes audio and/or reproduces sound. As used herein, the termHOUSEHOLD (provided in uppercase letters to disambiguate from the user'sdomicile) is used to represent a collection of networked devices thatare cooperating to provide an application or service. An instance of aHOUSEHOLD is identified with a household 610 (or household identifier),though a HOUSEHOLD may be identified with a different area or place.

In certain embodiments, a household identifier (HHID) is a short stringor an identifier that is computer-generated to help ensure that it isunique. Accordingly, the network 610 can be characterized by a uniqueHHID and a unique set of configuration variables or parameters, such aschannels (e.g., respective frequency bands), service set identifier(SSID) (a sequence of alphanumeric characters as a name of a wirelessnetwork), and WEP keys (wired equivalent privacy or other securitykeys). In certain embodiments, SSID is set to be the same as HHID.

In certain embodiments, each HOUSEHOLD includes two types of networknodes: a control point (CP) and a zone player (ZP). The control pointcontrols an overall network setup process and sequencing, including anautomatic generation of required network parameters (e.g., WEP keys). Inan embodiment, the CP also provides the user with a HOUSEHOLDconfiguration user interface. The CP function can be provided by acomputer running a CP application module, or by a handheld controller(e.g., the controller 308) also running a CP application module, forexample. The zone player is any other device on the network that isplaced to participate in the automatic configuration process. The ZP, asa notation used herein, includes the controller 308 or a computingdevice, for example. In some embodiments, the functionality, or certainparts of the functionality, in both the CP and the ZP are combined at asingle node (e.g., a ZP contains a CP or vice-versa).

In certain embodiments, configuration of a HOUSEHOLD involves multipleCPs and ZPs that rendezvous and establish a known configuration suchthat they can use a standard networking protocol (e.g., IP over Wired orWireless Ethernet) for communication. In an embodiment, two types ofnetworks/protocols are employed: Ethernet 802.3 and Wireless 802.11g.Interconnections between a CP and a ZP can use either of thenetworks/protocols. A device in the system as a member of a HOUSEHOLDcan connect to both networks simultaneously.

In an environment that has both networks in use, it is assumed that atleast one device in a system is connected to both as a bridging device,thus providing bridging services between wired/wireless networks forothers. The zone player 606 in FIG. 6 is shown to be connected to bothnetworks, for example. The connectivity to the network 612 is based onEthernet and/or Wireless, while the connectivity to other devices 602,604 and 608 is based on Wireless and Ethernet if so desired.

It is understood, however, that in some embodiments each zone player606, 604, 602 may access the Internet when retrieving media from thecloud (e.g., the Internet) via the bridging device. For example, zoneplayer 602 may contain a uniform resource locator (URL) that specifiesan address to a particular audio track in the cloud. Using the URL, thezone player 602 may retrieve the audio track from the cloud, andultimately play the audio out of one or more zone players.

VI. Example System Configuration

FIG. 7 shows a system including a plurality of networks including acloud-based network and at least one local playback network. A localplayback network includes a plurality of playback devices or players,though it is understood that the playback network may contain only oneplayback device. In certain embodiments, each player has an ability toretrieve its content for playback. Control and content retrieval can bedistributed or centralized, for example. Input can include streamingcontent provider input, third party application input, mobile deviceinput, user input, and/or other playback network input into the cloudfor local distribution and playback.

As illustrated by the example system 700 of FIG. 7, a plurality ofcontent providers 720-750 can be connected to one or more local playbacknetworks 760-770 via a cloud and/or other network 710. Using the cloud710, a multimedia audio system 720 (e.g., Sonos™), a mobile device 730,a third party application 740, a content provider 750 and so on canprovide multimedia content (requested or otherwise) to local playbacknetworks 760, 770. Within each local playback network 760, 770, acontroller 762, 772 and a playback device 764, 774 can be used toplayback audio content.

VII. Example Mobile Source Media Content Access

As mentioned above, embodiments for allowing a user of a networked mediasystem to add media from a personal device of the user to a media queueaccessible by the media system and component devices of the media systemare provided herein. In one example, a person (“user”) using the mediasystem 100 of FIG. 1A may be carrying a personal mobile device, such asa mobile media player such as an APPLE IPOD®, or a smart phone such asan APPLE IPHONE® or any ANDROID™ powered phone that may be configured tobe in communication with the media system. The personal mobile devicemay have access to or stored thereon media the user wishes to add to aqueue of the media system 100. For purposes of illustration, the usercould be the owner/regular-user of the media system 100 or a guest withauthority for his/her personal mobile device to communicate with themedia system 100.

In one embodiment, the user may have the option to add only a selectedsubset of the media on the mobile device to the queue, while keeping theremaining media on the mobile private or inaccessible by the mediasystem 100. In one case, adding the subset of media to the queue mayinvolve providing for each media in the subset, a URL through which themedia system 100 may access a respective media in the subset. In someembodiments, the URL points back to the media on the personal mobiledevice.

Once the subset of media has been added to the queue, another user ofthe media system 100, such as a friend of the user with the mobiledevice may be accessing the media system 100 via a controller device,such as the controller device 130 discussed above. In one embodiment,the friend may view and access the subset of media added to the queue bythe user in addition to other media already available for access by themedia system 100, but may not view or access the remaining media on thepersonal mobile device that were not added by the user. The friend maythen proceed to cause the media system 100 to render media from thesubset of media, or add media from the subset of media to a playlist tobe rendered at a later time.

In one example, the user may leave a vicinity of the media system 100 ormay shut off or disconnect from the network the personal mobile device.Whichever the circumstances, the personal mobile device may no longer bein communication with the media system 100. In this case, the URLsprovided to the media system 100 when the subset of media was added tothe queue may no longer be valid, and a media experience of the friendmay be affected if the friend was enjoying or expecting to enjoy mediafrom the subset of media when the personal mobile device wasdisconnected. In one embodiment, media equivalent to each of the subsetof media may be searched for and retrieved to replace the subset ofmedia in the queue in such a scenario. Implementation of such anembodiment may ensure that the friend's enjoyment of media rendered bythe media system 100 is maintained or at least minimally affected whenthe personal mobile device is disconnected.

FIG. 8 shows an example flow diagram of a method 800 for selectiveaddition of media for access by a device in a media system, inaccordance with at least some embodiments described herein. Method 800shown in FIG. 8 presents an embodiment of a method that could be used inthe environment 100 with the systems 200, 202, 204, 300, 400, and 500for example, in communication with one or more devices, such as devicesillustrated in FIGS. 2-5. Method 800 may include one or more operations,functions, or actions as illustrated by one or more of blocks 802-810.Although the blocks are illustrated in sequential order, these blocksmay also be performed in parallel, and/or in a different order thanthose described herein. Also, the various blocks may be combined intofewer blocks, divided into additional blocks, and/or removed based uponthe desired implementation.

In addition, for the method 800 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include non-transitory computer readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andRandom Access Memory (RAM). The computer readable medium may alsoinclude non-transitory media, such as secondary or persistent long termstorage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. The computerreadable media may also be any other volatile or non-volatile storagesystems. The computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device. Inaddition, for the method 800 and other processes and methods disclosedherein, each block in FIG. 8 may represent circuitry that is wired toperform the specific logical functions in the process.

At block 802, the method 800 may involve providing first mediaavailability data. In one example, the first media availability data mayindicate first media available for access by a first device. The firstdevice may be a component device of a media system. For instance, inconnection with the previous discussions, the first device may be a zoneplayer such as one of the zone players 102-124, or a controller such asthe controller 130 of the media system 100 shown in FIG. 1. The firstmedia may include all media available for access by the media system100. In other words, the first media may include all media available forrendering by the media system 100.

FIG. 9A shows an example block diagram representing first mediaaccessibility 900, including an illustrative device 902 and illustrativemedia sources 904 and 906. In one example, the device 902 may representthe media system 100. In another example, the device 902 may represent adevice associated with the media system 100. In either example, mediasources 904 and 906 may represent media sources accessible by the mediasystem 100. For instance, media source 904 may be a local storagemedium, and media source 906 may be a media service accessible over anetwork. A shown, the device 902 may be connected to the media sources904 and 906, indicating access to media on both media sources 904 and906 by the device 902. In one case, the connection between the device902 and the media sources 904 and 906 may be representative of URLpointers stored on the device 902 identifying the locations of the mediasources 904 and 906 in reference to the device 902. Referring back toblock 802, the device 902 may correspond to the first device, and thefirst media available for access by the first device may include mediaon the media sources 904 and 906.

In some scenarios, a user of the first device and/or media system maywish to view the available media. FIG. 10A shows an example firstinterface 1000 of a device in a media system. In this case, the devicemay be the first device and/or the device 902, and the media system maybe the media system 100 of FIG. 1 and/or the device 902 of FIG. 9A. Asshown, the interface 1000 may provide now playing information 1002 undera “NOW PLAYING” section indicating media, or in this case, a song thatis currently playing, if a song is currently playing. The interface 100may also provide available media information 1004 under an “AVAILABLESONGS” section indicating media that is available. In this example, theavailable media information 1004 may list all media on the media source904 and 906.

At block 804, the method 800 may involve receiving from a second devicehaving access to a first subset of media and a second subset of media,data indicating an addition of the first subset of media to a queueaccessible by the first device. In this example, the queue may representa list of media accessible by the media system 100 for rendering.

In one example, the second device may be a personal device from which auser may wish to add media to the media system. Rather than a componentdevice such as the first device, the second device may be a mobiledevice such as a mobile phone or mobile media player carried by the userand in communication with the media system 100 via a cellular network(such as a 3G network) or a local Wi-Fi network. In one case, the seconddevice may be registered with the media system 100 so as to communicatewith the media system 100 to control the media system 100, access mediathrough the media system 100, or in this case, add media to a queue ofthe media system 100. In one instance, the second device may detect themedia system 100, or the media system 100 may detect the second devicewhen the second device is within communication range of the media system100. In this instance, the user of the second device may then beprompted to register or connect with the media system 100 via the seconddevice.

As discussed previously, the user may wish to add only the first subsetof media from the second device to the queue and may wish to keep thesecond subset of media private. Accordingly, the user may select via aninterface on the second device the first subset of media to add to thequeue. In one case, receiving data indicating the addition of the firstsubset of media may involve receiving URLs associated with each media inthe first subset of media.

In one example, the first subset of media and the second subset of mediamay be stored on the second device. In other words, the media contentdata for the media may be stored on a data storage medium of the seconddevice. In another example, the first subset of media and second subsetof media are stored remotely and may be accessed by the second device.For instance, the media on the second device may be media provided bymedia services such as RHAPSODY™ or SPOTIFY™, and may be accessed via anapplication on the second device. In this case, URLs for the media maybe stored on the second device. In a further example, the media on thesecond device may be a mix of media stored locally and media provided bymedia services.

At block 806, the method 800 may involve providing second mediaavailability data indicating second media available for access by thefirst device. In one example, the second media comprises the firstsubset of media and does not comprise the second subset of media. Asdiscussed above, only the first subset of media selected to be added tothe queue may be available to the first device, while the second subsetof media remains private. In this case, the second media available foraccess by the first device, and therefore available for rendering by thefirst device may include the first subset of media, and not the secondsubset of media from the second device.

FIG. 9B shows an example block diagram representing second mediaaccessibility 930. The second media availability 930 includes the device902 and media sources 904 and 906 discussed above in connection to FIG.9A, as well as a media source 908, which in this case may be the seconddevice (personal device). In this example, the first subset of mediafrom the media source 908 may include media 910, 912, and 914, and thesecond subset of media from the media source 908 may include media 916,918, 920, 924, and 926. As shown, the device 902 may be connecteddirectly to media 910, 912, and 914 in the first subset of media ratherthan to the media source 908 as a whole, and therefore may not beconnected to media 916, 918, 920, 924, and 926 in the second subset ofmedia. As such, the device 902 may have access to media 910, 912, and914, and not to media 916, 918, 920, 924, and 926. Referring back toblock 806, the second media availability data may therefore indicatethat the second media, including media 910, 912, and 914, is availablefor access by the first device.

As discussed above, media on the second device may be media storedlocally or media provided by media services accessible by the seconddevice. In the case media in the first subset of media is stored locallyon the second device, adding the media to the queue may involveproviding a URL to the media on the second device to the device 902. Inthe case media in the first subset of media is provided by a mediaservice, adding the media to the queue may involve forwarding a URL ofthe media on the media service to the device 902.

Note that while media 916, 918, 920, 924, and 926 are shown in FIG. 9B,this second subset of media is only provided for illustrative purposes,and may be, in implementation, completely invisible to the first device.In other words, not only is the second subset of media that was notselected by the user of the second device to be added to the queueinaccessible by the first device, the second subset of media may noteven be viewable by the first device.

In connection to FIG. 10A discussed above, FIG. 10B shows an examplesecond interface 1200 of the first device in the media system 100 afterthe second subset of media has been added to the queue. As shown,additional media information 1006 is provided under the “AVAILABLESONGS” section in addition to the available media information 1004. Inthis case, the additional media information 1006 may reflect the secondsubset of media added from the second device. As indicated previously,the second device may be a personal device such as a mobile media playeror mobile phone having media rendering capabilities. In such a case,symbols 1008 may also be provided on the interface 1200 next to theadditional media information 1006 to indicate that media associated withthe additional media information 1006 may be from a mobile device.

As mentioned above, the user may leave the vicinity of the media system100 or may shut off or disconnect from the network the second device,resulting in the second device no longer being in communication with themedia system 100. Accordingly, the URLs provided to the media system 100when the first subset of media was added to the queue may no longer bevalid. At block 808, the method 800 may involve initiating a query forequivalent media of the first subset of media on media sourcesaccessible by the first device. In one example, the query for equivalentmedia may be for the purpose of substituting the first subset of mediacontent with the equivalent media in case the first subset of mediacontent is no longer accessible by the first device of the media system100 due to the second device being disconnected from the media system100.

In one example, initiating the query for equivalent media of the firstsubset of media may involve determining that a strength of communicationwith the second device is below a threshold. For instance, a receivedsignal strength indicator (RSSI) for communication signals received fromthe second device may be monitored, and a threshold signal strength maybe predetermined as the minimal signal strength preferred for secure andreliable communication with the second device. As such, when the signalstrength falls below the threshold signal strength, communication withthe second device may become insufficiently reliable and access to mediaon the second device may no longer be available.

FIG. 10C shows an example third interface 1400 of the first device inthe media system 100. As shown, the interface 1400 includes additionalmedia information 1016 reflecting the second subset of media added fromthe second device similar to that of additional media information 1006of the interface 1200 of FIG. 10B. In this case, however, text of theadditional media information 1016 may be greyed out as shown to indicatethat access to the media represented by the additional media information1016 may be unreliable or unavailable.

Referring back to block 808, query for equivalent media may be initiatedto remedy the reduced access to media on the second device. In oneexample, metadata associated with each media in the second media may beprovided to the media system 100 when the first subset of media from thesecond device is added to the queue. As such, equivalent media may besearched for according to the provided metadata. The equivalent mediamay be searched for on any media source accessible by the media system100, including local storage mediums, or remote media servers associatedwith media services, as discussed above.

In one example, the equivalent media may include media matching themedia in the second media exactly, such as a copy of the same media. Forexample, the same version of a song by an artist may be availablethrough a media service as well as the second device. For instance, thesong may be accessed by the second device through a media service themedia system 100 can also access. Accordingly, a URL to the songaccessed directly by the media system 100 may represent equivalent mediato a URL to the song as accessed by the second device. In some cases,media matching the media in the second media may not be available. Forexample, a song from the second device that was added to the mediasystem 100 may be a rare live version of a song that was only releasedas part of an exclusive limited edition collector's box set. In thisexample, equivalent media may include other live versions of the song,or studio versions of the song by the same artist.

At block 810, the method 800 may involve replacing some or all of thefirst subset of media in the queue with the equivalent media. In oneexample, replacing the first subset of media in the queue with theequivalent media may allow a user of the media system 100 to continue toexperience media identical to or at least similar to the first subset ofmedia which may otherwise be unavailable if the second device isdisconnected from the media system 100. FIG. 9C shows an example blockdiagram representing third media accessibility 960. The third mediaavailability 960 may include the device 902 and media sources 904 and906 discussed above in connection to FIGS. 9A and 9B. However, incontrast to the second media accessibility 930 of FIG. 9B, the mediasource 908 may no longer be available because the second deviceassociated with the media source 908 may have been disconnected from thedevice 902. As shown, the media source 906 may include media 912′ and914′ which may be equivalent media to media 912 and 914 from the nowdisconnected second device. As such, the device 902 may access theequivalent media 912′ and 914′ on the media source 906. Also shown is amedia source 962 with media 910′, which may be equivalent media to media910 from the now disconnected second device. In this example, equivalentmedia to media 910 may not be available on media sources 904 and 906,but may be available on media source 962. As such, the device 902 mayaccess media 910′ on media source 962.

FIG. 10D shows an example fourth interface 1600 of the first device inthe media system 100. The interface 1600 may include equivalent mediainformation 1026 reflecting equivalent media replacing the second subsetof media previously added from the second device but that has becomeunavailable. As shown, a symbol 1018 may be provided on the interface1600 next to Song Title 6 of the equivalent media information 1026indicating that media associated with Song Title 6 of the equivalentmedia information 1026 may not be an exact match, but rather a similarversion of media corresponding to Song Title 6 of the additional mediainformation 1016 of FIG. 10C. On the other hand, Song Title 7 in theequivalent media information 1026 may correspond to media that exactlymatches media corresponding to Song Title 7 in the additional mediainformation 1016 of FIG. 10C, and may therefore not have an adjacentsymbol like the symbol 1018.

As the method 800 as described above in connection to FIG. 8 providesjust one example method for mobile source media content access, otherembodiments within the scope of the present application, includingvariations of the method 800 are also possible. For instance, a queryfor equivalent media may be initiated for the first subset of media whenthe first subset of media is originally added to the media system 100from the second device, given that the second device is a mobile deviceexpected to be disconnected from the media system 100 at some futuretime.

In another instance, query for equivalent media may only be initiated ifmedia in the first subset of media added to the queue has been furtheradded to a playlist and expected to be rendered at some future time. Inthis instance, query for equivalent media may be initiated if media inthe first subset of media is unavailable at a certain time prior to whenthe media is expected to be rendered. For example, if media in the firstsubset of media has been added to a playlist, a query for equivalentmedia may only be initiated if the media is unavailable due todisconnection of the second device five minutes before when the media isexpected to be rendered. In this case, if the second device waspreviously disconnected, a query for equivalent media may not beinitiated if the second device reconnects at least five minutes beforethe media is expected to be rendered.

In further examples, a notification may be sent to the second device ifthe strength of communication between the second device and the mediasystem 100 is below the predetermined threshold. In one case, thenotification may be sent via a different communication means than aregular means of communication between the second device and the mediasystem 100. For example, the regular means of communication between thesecond device and the media system 100 may involve a local wirelessnetwork as discussed above. In this case, if the communication signalstrength between the second device and the media system 100 over thelocal wireless network is below the predetermined threshold, anotification may be sent from the media system 100 to the second deviceover a cellular network.

In one example, the notification may be sent via a notification service,such as an Apple Push Notification service (APNs). The APNs may beconfigured to propagate push notifications to devices havingapplications registered to receive those notifications. Each device mayestablish an accredited and encrypted IP connection with the service andreceive notifications over this persistent connection. Providers mayconnect with APNs through a persistent and secure channel whilemonitoring incoming data intended for their client applications. Whennew data for an application arrives, the provider prepares and sends anotification through the channel to APNs, which pushes the notificationto the target device.

In one example, the notification may indicate to a user of the seconddevice that the second device is no longer in reliable communicationwith the media system 100. In this case, if the user carrying the seconddevice travelled out of communicative range of the media system 100unintentionally, the user may have an opportunity to travel back withincommunicative range. As pertinent to the present application, examplenotifications may include “Someone would like to play music from yourdevice,” “The playback queue for the Living Room will be playing contentsourced from your device soon,” “Playback is currently paused in theKitchen, waiting for access to your portable device,” and so on.

In one instance, a notification may be sent after equivalent media hasbeen found and used to replace media in the no longer available subsetof media. In this instance, the notification may serve informativepurposes. In another instance, as described above, a notification may besent upon disconnection of the second device from the media system 100.In this case, the user carrying the second device may have apredetermined duration of time by which to reconnect the second deviceto the media system 100. If the second device was not reconnected to themedia system 100 within the predetermined duration of time, a query forequivalent media may be initiated. In other words, the notification maybe provided to solicit feedback (either explicitly or in this case,implicitly) based upon to determine subsequent actions, such asinitiating a query for equivalent media.

VIII. Conclusion

The descriptions above disclose various example systems, methods,apparatus, and articles of manufacture including, among othercomponents, firmware and/or software executed on hardware. However, suchexamples are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesefirmware, hardware, and/or software components can be embodiedexclusively in hardware, exclusively in software, exclusively infirmware, or in any combination of hardware, software, and/or firmware.Accordingly, while the following describes example systems, methods,apparatus, and/or articles of manufacture, the examples provided are notthe only way(s) to implement such systems, methods, apparatus, and/orarticles of manufacture.

As provided in the embodiments discussed above, the present applicationenables a user to selectively add media from a personal device to aqueue accessible by other devices in a media system. In one aspect, amethod is provided. The method involves providing first mediaavailability data. The first media availability data indicates firstmedia available for access by a first device. The method furtherinvolves receiving from a second device having access to a first subsetof media and a second subset of media, data indicating an addition ofthe first subset of media to a queue accessible by the first device, andproviding second media availability data indicating second mediaavailable for access by the first device. The second media comprises thefirst media and the first subset of media and does not comprise thesecond subset of media.

In another aspect, a system is provided. The system includes at leastone processor, a non-transitory computer readable medium, and programinstructions stored on the non-transitory computer readable medium. Theprogram instructions are executable by the at least one processor toperform functions including providing first media availability data. Thefirst media availability data indicates first media available for accessby a first device. The functions further include receiving from a seconddevice having access to a first subset of media and a second subset ofmedia, data indicating an addition of the first subset of media to aqueue accessible by the first device, and providing second mediaavailability data indicating second media available for access by thefirst device. The second media comprises the first media and the firstsubset of media and does not comprise the second subset of media.

In yet another aspect, a non-transitory computer readable medium havinginstructions stored thereon is provided. The instructions are executableby a computing device to cause the computing device to perform functionsincluding providing first media availability data. The first mediaavailability data indicates first media available for access by a firstdevice. The functions further include receiving from a second devicehaving access to a first subset of media and a second subset of media,data indicating an addition of the first subset of media to a queueaccessible by the first device, and providing second media availabilitydata indicating second media available for access by the first device.The second media comprises the first media and the first subset of mediaand does not comprise the second subset of media.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

1. A method to be performed by a media playback system, the methodcomprising: receiving, via a network interface of a playback device froma first controller interface on a first mobile device, data representingone or more commands to (i) add a streaming library of a streaming audioservice to media available for playback by the media playback system and(ii) designate a personal library of the streaming audio service asprivate, the personal library including a subset of the streaminglibrary; in response to receiving the data representing the one or morecommands to add the streaming library of the streaming audio service tothe media available for playback by the media playback system, addingthe streaming library of a streaming audio service to the mediaavailable for playback by the media playback system; sending, via thenetwork interface to the first mobile device, first media availabilitydata indicating the media available for playback by the media playbacksystem, the media available for playback by the media playback systemincluding the streaming library of the streaming audio service, whereinthe first media availability data populates a library control of thefirst controller interface with the media available for playback by themedia playback system, wherein the subset of the streaming library isdesignated within the library control as the personal library of thestreaming audio service; sending, via the network interface to one ormore second mobile devices, second media availability data indicatingthe media available for playback by the media playback system, the mediaavailable for playback by the media playback system including thestreaming library of the streaming audio service, wherein the secondmedia availability data populates respective library controls of thesecond controller interfaces on the one or more second mobile deviceswith the media available for playback by the media playback system,wherein the subset of the streaming library is not designated within thelibrary control as the personal library of the streaming audio service;receiving, via the network interface from the first mobile device, oneor more commands to queue one or more audio tracks of the mediaavailable for playback by the media playback system; in response to theone or more commands to queue the one or more audio tracks of the mediaavailable for playback by the media playback system, adding the one ormore audio tracks to the queue; and playing back the queue via one ormore speakers.
 2. The method of claim 1, wherein the streaming audioservice is a first streaming audio service, and wherein the mediaavailable for playback by the media playback system includes a streaminglibrary of a second streaming audio service.
 3. The method of claim 1,wherein the one or more audio tracks of the media available for playbackby the media playback system are one or more first audio track, andwherein the method further comprises: receiving, via the networkinterface from a given second mobile device, one or more commands toqueue one or more second audio tracks of the media available forplayback by the media playback system; and in response in response tothe one or more commands to queue the one or more second audio tracks ofthe media available for playback by the media playback system, addingthe one or more second audio tracks to the queue.
 4. The method of claim1, wherein the method further comprises: receiving, via a networkinterface of a playback device from a first controller interface on afirst mobile device, data representing one or more commands to (i) add alocal library of audio tracks stored in data storage of the first mobiledevice to the media available for playback by the media playback systemand (ii) designate a subset of the local library of audio tracks asprivate; in response to receiving the data representing the one or morecommands to add the local library of audio tracks stored in data storageof the first mobile device to the media available for playback by themedia playback system, adding the local library of audio tracks to themedia available for playback to the media available for playback by themedia playback system; sending, via the network interface to the firstmobile device, updated first media availability data indicating themedia available for playback by the media playback system, the mediaavailable for playback by the media playback system including thestreaming library of the streaming audio service and the local libraryof audio tracks; and sending, via the network interface to the one ormore second mobile devices, second media availability data indicatingthe media available for playback by the media playback system, the mediaavailable for playback by the media playback system including thestreaming library of the streaming audio service and the local libraryof audio tracks other the subset of audio tracks designated as private.5. The method of claim 1, wherein the method further comprises:determining that a particular audio track of the queue is inaccessibleto the playback device, wherein the particular audio track is stored indata storage of the first mobile device; in response to determining thatthe particular audio track of the queue is inaccessible to the playbackdevice, determining, within the media available to the media playbacksystem, a replacement audio track similar to the particular audio track;and replacing the particular audio track in the queue with thereplacement audio track.
 6. The method of claim 1, wherein the methodfurther comprises: sending, via the network interface to the firstmobile device, the second media availability data indicating the mediaavailable for playback by the media playback system, wherein the secondmedia availability data populates a library controls of a given secondcontroller interface on the one or more first mobile devices with themedia available for playback by the media playback system, wherein thesubset of the streaming library is not designated within the librarycontrol as the personal library of the streaming audio service.
 7. Themethod of claim 1, wherein the method further comprises: in response toadding the streaming library of the streaming audio service to the mediaavailable for playback by the media playback system updating one or moreadditional playback devices with data representing the media availableto the media playback system.
 8. A playback device of a media playbacksystem, the playback device comprising: a network interface; one or moreprocessors; and data storage storing instructions that when executed bythe one or more processors cause the playback device to perform a methodcomprising: receiving, via the network interface from a first controllerinterface on a first mobile device, data representing one or morecommands to (i) add a streaming library of a streaming audio service tomedia available for playback by the media playback system and (ii)designate a personal library of the streaming audio service as private,the personal library including a subset of the streaming library; inresponse to receiving the data representing the one or more commands toadd the streaming library of the streaming audio service to the mediaavailable for playback by the media playback system, adding thestreaming library of a streaming audio service to the media availablefor playback by the media playback system; sending, via the networkinterface to the first mobile device, first media availability dataindicating the media available for playback by the media playbacksystem, the media available for playback by the media playback systemincluding the streaming library of the streaming audio service, whereinthe first media availability data populates a library control of thefirst controller interface with the media available for playback by themedia playback system, wherein the subset of the streaming library isdesignated within the library control as the personal library of thestreaming audio service; sending, via the network interface to one ormore second mobile devices, second media availability data indicatingthe media available for playback by the media playback system, the mediaavailable for playback by the media playback system including thestreaming library of the streaming audio service, wherein the secondmedia availability data populates respective library controls of thesecond controller interfaces on the one or more second mobile deviceswith the media available for playback by the media playback system,wherein the subset of the streaming library is not designated within thelibrary control as the personal library of the streaming audio service;receiving, via the network interface from the first mobile device, oneor more commands to queue one or more audio tracks of the mediaavailable for playback by the media playback system; in response to theone or more commands to queue the one or more audio tracks of the mediaavailable for playback by the media playback system, adding the one ormore audio tracks to the queue; and playing back the queue via one ormore speakers.
 9. The playback device of claim 8, wherein the streamingaudio service is a first streaming audio service, and wherein the mediaavailable for playback by the media playback system includes a streaminglibrary of a second streaming audio service.
 10. The playback device ofclaim 8, wherein the one or more audio tracks of the media available forplayback by the media playback system are one or more first audio track,and wherein the method further comprises: receiving, via the networkinterface from a given second mobile device, one or more commands toqueue one or more second audio tracks of the media available forplayback by the media playback system; and in response in response tothe one or more commands to queue the one or more second audio tracks ofthe media available for playback by the media playback system, addingthe one or more second audio tracks to the queue.
 11. The playbackdevice of claim 8, wherein the method further comprises: receiving, viaa network interface of a playback device from a first controllerinterface on a first mobile device, data representing one or morecommands to (i) add a local library of audio tracks stored in datastorage of the first mobile device to the media available for playbackby the media playback system and (ii) designate a subset of the locallibrary of audio tracks as private; in response to receiving the datarepresenting the one or more commands to add the local library of audiotracks stored in data storage of the first mobile device to the mediaavailable for playback by the media playback system, adding the locallibrary of audio tracks to the media available for playback to the mediaavailable for playback by the media playback system; sending, via thenetwork interface to the first mobile device, updated first mediaavailability data indicating the media available for playback by themedia playback system, the media available for playback by the mediaplayback system including the streaming library of the streaming audioservice and the local library of audio tracks; and sending, via thenetwork interface to the one or more second mobile devices, second mediaavailability data indicating the media available for playback by themedia playback system, the media available for playback by the mediaplayback system including the streaming library of the streaming audioservice and the local library of audio tracks other the subset of audiotracks designated as private.
 12. The playback device of claim 8,wherein the method further comprises: determining that a particularaudio track of the queue is inaccessible to the playback device, whereinthe particular audio track is stored in data storage of the first mobiledevice; in response to determining that the particular audio track ofthe queue is inaccessible to the playback device, determining, withinthe media available to the media playback system, a replacement audiotrack similar to the particular audio track; and replacing theparticular audio track in the queue with the replacement audio track.13. The playback device of claim 8, wherein the method furthercomprises: sending, via the network interface to the first mobiledevice, the second media availability data indicating the mediaavailable for playback by the media playback system, wherein the secondmedia availability data populates a library controls of a given secondcontroller interface on the one or more first mobile devices with themedia available for playback by the media playback system, wherein thesubset of the streaming library is not designated within the librarycontrol as the personal library of the streaming audio service.
 14. Theplayback device of claim 8, wherein the method further comprises: inresponse to adding the streaming library of the streaming audio serviceto the media available for playback by the media playback systemupdating one or more additional playback devices with data representingthe media available to the media playback system.
 15. A tangiblenon-transitory computer-readable medium having stored thereoninstructions executable by a playback device of a media playback systemto cause the playback device to perform a method comprising: receiving,via a network interface of the playback device from a first controllerinterface on a first mobile device, data representing one or morecommands to (i) add a streaming library of a streaming audio service tomedia available for playback by the media playback system and (ii)designate a personal library of the streaming audio service as private,the personal library including a subset of the streaming library; inresponse to receiving the data representing the one or more commands toadd the streaming library of the streaming audio service to the mediaavailable for playback by the media playback system, adding thestreaming library of a streaming audio service to the media availablefor playback by the media playback system; sending, via the networkinterface to the first mobile device, first media availability dataindicating the media available for playback by the media playbacksystem, the media available for playback by the media playback systemincluding the streaming library of the streaming audio service, whereinthe first media availability data populates a library control of thefirst controller interface with the media available for playback by themedia playback system, wherein the subset of the streaming library isdesignated within the library control as the personal library of thestreaming audio service; sending, via the network interface to one ormore second mobile devices, second media availability data indicatingthe media available for playback by the media playback system, the mediaavailable for playback by the media playback system including thestreaming library of the streaming audio service, wherein the secondmedia availability data populates respective library controls of thesecond controller interfaces on the one or more second mobile deviceswith the media available for playback by the media playback system,wherein the subset of the streaming library is not designated within thelibrary control as the personal library of the streaming audio service;receiving, via the network interface from the first mobile device, oneor more commands to queue one or more audio tracks of the mediaavailable for playback by the media playback system; in response to theone or more commands to queue the one or more audio tracks of the mediaavailable for playback by the media playback system, adding the one ormore audio tracks to the queue; and playing back the queue via one ormore speakers.
 16. The tangible non-transitory computer-readable mediumof claim 15, wherein the streaming audio service is a first streamingaudio service, and wherein the media available for playback by the mediaplayback system includes a streaming library of a second streaming audioservice.
 17. The tangible non-transitory computer-readable medium ofclaim 15, wherein the one or more audio tracks of the media availablefor playback by the media playback system are one or more first audiotrack, and wherein the method further comprises: receiving, via thenetwork interface from a given second mobile device, one or morecommands to queue one or more second audio tracks of the media availablefor playback by the media playback system; and in response in responseto the one or more commands to queue the one or more second audio tracksof the media available for playback by the media playback system, addingthe one or more second audio tracks to the queue.
 18. The tangiblenon-transitory computer-readable medium of claim 15, wherein the methodfurther comprises: receiving, via a network interface of a playbackdevice from a first controller interface on a first mobile device, datarepresenting one or more commands to (i) add a local library of audiotracks stored in data storage of the first mobile device to the mediaavailable for playback by the media playback system and (ii) designate asubset of the local library of audio tracks as private; in response toreceiving the data representing the one or more commands to add thelocal library of audio tracks stored in data storage of the first mobiledevice to the media available for playback by the media playback system,adding the local library of audio tracks to the media available forplayback to the media available for playback by the media playbacksystem; sending, via the network interface to the first mobile device,updated first media availability data indicating the media available forplayback by the media playback system, the media available for playbackby the media playback system including the streaming library of thestreaming audio service and the local library of audio tracks; andsending, via the network interface to the one or more second mobiledevices, second media availability data indicating the media availablefor playback by the media playback system, the media available forplayback by the media playback system including the streaming library ofthe streaming audio service and the local library of audio tracks otherthe subset of audio tracks designated as private.
 19. The tangiblenon-transitory computer-readable medium of claim 15, wherein the methodfurther comprises: determining that a particular audio track of thequeue is inaccessible to the playback device, wherein the particularaudio track is stored in data storage of the first mobile device; inresponse to determining that the particular audio track of the queue isinaccessible to the playback device, determining, within the mediaavailable to the media playback system, a replacement audio tracksimilar to the particular audio track; and replacing the particularaudio track in the queue with the replacement audio track.
 20. tangiblenon-transitory computer-readable medium of claim 15, wherein the methodfurther comprises: sending, via the network interface to the firstmobile device, the second media availability data indicating the mediaavailable for playback by the media playback system, wherein the secondmedia availability data populates a library controls of a given secondcontroller interface on the one or more first mobile devices with themedia available for playback by the media playback system, wherein thesubset of the streaming library is not designated within the librarycontrol as the personal library of the streaming audio service.